#!/bin/bash
source "sNmcli.sh"
# это цвет текста списка перед курсором при значении 0 в переменной  UNMARK(){ $e "\e[0m";}
 UNMARK(){ $e "\e[0m";}
 MARK(){ $e "\e[1;37m";}
#
 HEAD()
{
 for (( a=2; a<=19; a++ ))
  do
   TPUT $a 1
    $E "$na";
  done
   TPUT  1 1;$E "$nb";UNMARK;
   TPUT  2 2;$E "\e[1;36m OPTIONS\e[0m                                                                 \e[2m Опции\e[0m";
   TPUT  3 1;$E "$nc";
   TPUT 18 1;$E "$nd";
}
 FOOT(){ MARK;TPUT 20 1;$E "$ne";UNMARK;}
  M0(){ TPUT  4 3; $e "Oстановится и запросит отсутствующие обязательные аргументы      \e[32m -a | --ask \e[0m";}
  M1(){ TPUT  5 3; $e "Параметр управляет выводом цвета              \e[32m -c --colors {yes | no | auto} \e[0m";}
  M2(){ TPUT  6 3; $e "Перечислит варианты завершения для последнего аргумента     \e[32m --complete-args \e[0m";}
  M3(){ TPUT  7 3; $e "Нужно ли экранировать символы                      \e[32m -e | --escape {yes | no} \e[0m";}
  M4(){ TPUT  8 3; $e "Kакие поля должны показаны  \e[32m -f | --fields {field1,field2... | all | common} \e[0m";}
  M5(){ TPUT  9 3; $e "Ярлык -m табличный -t -f \e[32m -g | --get-values {field1,field2...| all | common} \e[0m";}
  M6(){ TPUT 10 3; $e "Print help information                                            \e[32m -h --help \e[0m";}
  M7(){ TPUT 11 3; $e "Переключение табличным/многострочным выводом\e[32m -m --mode {tabular | multiline} \e[0m";}
  M8(){ TPUT 12 3; $e "Режим обзора                                                 \e[32m -o, --overview \e[0m";}
  M9(){ TPUT 13 3; $e "Красивы выход                                                \e[32m  -p | --pretty \e[0m";}
 M10(){ TPUT 14 3; $e "Oтображать пароли и секреты                             \e[32m -s | --show-secrets \e[0m";}
 M11(){ TPUT 15 3; $e "Краткий вывод                                                  \e[32m -t | --terse \e[0m";}
 M12(){ TPUT 16 3; $e "Show nmcli version                                           \e[32m -v | --version \e[0m";}
 M13(){ TPUT 17 3; $e "Bремя ожидания                                          \e[32m -w | --wait seconds \e[0m";}
 M14(){ TPUT 19 3; $e "Exit                                                                         ";}
LM=14
   MENU(){ for each in $(seq 0 $LM);do M${each};done;}
    POS(){ if [[ $cur == up ]];then ((i--));fi
           if [[ $cur == dn ]];then ((i++));fi
           if [[ $i -lt 0   ]];then i=$LM;fi
           if [[ $i -gt $LM ]];then i=0;fi;}
REFRESH(){ after=$((i+1)); before=$((i-1))
           if [[ $before -lt 0  ]];then before=$LM;fi
           if [[ $after -gt $LM ]];then after=0;fi
           if [[ $j -lt $i      ]];then UNMARK;M$before;else UNMARK;M$after;fi
           if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
           UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
   INIT(){ R;HEAD;FOOT;MENU;}
     SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
# Функция возвращения в меню
     ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  while [[ "$O" != " " ]]; do case $i in
  0) S=M0;SC; if [[ $cur == enter ]];then R;echo -e "
 При использовании этой опции nmcli остановится и запросит отсутствующие
 обязательные аргументы, поэтому не используйте эту опцию для неинтерактивных
 целей ,таких как скрипты. Этот параметр определяет, например, будет ли
 запрашиваться пароль, если он требуется для подключения к сети:
 Посмотреть только активные соединения:\e[32m nmcli con show -a\e[0m
";ES;fi;;
  1) S=M1;SC; if [[ $cur == enter ]];then R;echo -e "
 Этот параметр управляет выводом цвета
 (используя escape-последовательности терминала):
\e[32m yes \e[0m включает цвета,
\e[32m no  \e[0m отключает их,
\e[32m auto\e[0m воспроизводит цвета только тогда, когда стандартный вывод направляется на
 терминал. Значение по умолчанию — авто.
 Фактически используемые цвета настраиваются, как описано в terminal-colors.d
 Пожалуйста, обратитесь к разделу ЦВЕТА для получения списка имен цветов,
 поддерживаемых nmcli. Если переменная окружения NO_COLOR установлена (любое
 значение), то раскрашивание отключается в режиме auto
 Явное включение раскраски переопределяет переменную среды.
";ES;fi;;
  2) S=M2;SC; if [[ $cur == enter ]];then R;echo -e "
 Вместо выполнения желаемого действия nmcli перечислит возможные варианты
 завершения для последнего аргумента.
 Это полезно для реализации завершения аргументов в оболочке.
 Статус выхода укажет на успех или вернет код 65, указывающий,
 что последним аргументом является имя файла.
 NetworkManager поставляется с поддержкой завершения команд для GNU Bash.
";ES;fi;;
  3) S=M3;SC; if [[ $cur == enter ]];then R;echo -e "
 Нужно ли экранировать символы:
 и \\ в кратком табличном режиме. Управляющий символ \\
 Если опущено, по умолчанию да
";ES;fi;;
  4) S=M4;SC; if [[ $cur == enter ]];then R;echo -e "
\e[32m --fields\e[0m Эта опция используется для указания того, какие поля (имена столбцов)
 должны быть напечатаны. Допустимые имена полей различаются для конкретных команд.
 Перечислите доступные поля, указав недопустимое значение для этого параметра.
\e[32m all     \e[0m используется для печати всех допустимых значений поля команды.
\e[32m common  \e[0m используется для печати значений общих полей команды.
 Если опущено, используется значение по умолчанию.
";ES;fi;;
  5) S=M5;SC; if [[ $cur == enter ]];then R;echo -e "
 Эта опция используется для печати значений из определенных полей.
 По сути, это ярлык для --mode tabular --terse --fields и удобный способ получения
 значений для определенных полей. Значения печатаются по одному в строке без
 заголовков. Если вместо поля указан раздел, имя раздела будет напечатано, а затем
 разделенные двоеточием значения полей, принадлежащих этому разделу, все в одной
 строке.
";ES;fi;;
  6) S=M6;SC; if [[ $cur == enter ]];then R;echo -e "
\e[32m nmcli -h\e[0m
#
\e[32m nmcli --help\e[0m
";ES;fi;;
  7) S=M7;SC; if [[ $cur == enter ]];then R;echo -e "
 Переключение между табличным и многострочным выводом:
\e[32m tabular  \e[0m табличный Выходные данные представляют собой таблицу, в которой каждая
 строка описывает одну запись. Столбцы определяют определенные свойства записи.
\e[32m multiline\e[0m многострочный Каждая запись состоит из нескольких строк, каждое свойство
 находится в отдельной строке. Значения имеют префикс имени свойства.
 Если этот параметр опущен, по умолчанию большинствo команд использует таблица.
 Для команд, выдающих более структурированную информацию, которую нельзя отобразить
 в одной строке, по умолчанию многострочный. В настоящее время они:
 • nmcli connection show ID Идентификатор показа соединения nmcli
 • nmcli device show        Показать устройство nmcli
";ES;fi;;
  8) S=M8;SC;if [[ $cur == enter ]];then R;echo -e "\e[32m \e[0m";ES;fi;;
  9) S=M9;SC; if [[ $cur == enter ]];then R;echo -e "
 Это заставляет nmcli создавать легко читаемые результаты для людей,
 т. е. значения выравниваются, заголовки печатаются и т. д.
";ES;fi;;
 10) S=M10;SC; if [[ $cur == enter ]];then R;echo -e "
 При использовании этой опции nmcli будет отображать пароли и секреты, которые
 могут присутствовать в выводе операции. Эта опция также влияет на эхо паролей,
 введенных пользователем в качестве входных данных.
";ES;fi;;
 11) S=M11;SC;if [[ $cur == enter ]];then R;echo -e "
 Этот режим разработан и подходит для компьютерной (сценарной) обработки.
";ES;fi;;
 12) S=M12;SC;if [[ $cur == enter ]];then R;echo -e "
\e[32m nmcli -v\e[0m
#
\e[32m nmcli --version\e[0m
";ES;fi;;
 13) S=M13;SC;if [[ $cur == enter ]];then R;echo -e "
 Эта опция устанавливает время ожидания, в течение которого nmcli будет ожидать
 завершения операций NetworkManager. Это особенно полезно для команд, выполнение
 которых может занять больше времени, например. активация подключения.
 Указание значения 0 указывает nmcli не ждать, а немедленно выйти с состоянием
 успеха. Значение по умолчанию зависит от выполняемой команды.
";ES;fi;;
 14) S=M14;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
 esac;POS;done
